home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 1 / Amiga Tools.iso / egs-tools / egs_dev-disk / egsdemos / egsexamples / menu / eventloop.c next >
Encoding:
Text File  |  1994-06-06  |  1.7 KB  |  98 lines

  1. /*
  2. **  Author: Markus van Kempen
  3. **  Date  : 8 November 92
  4. **
  5. **
  6. **  This routine handle events (like Commodore)
  7. **
  8. **  (c) by VIONA-Development 1992/93
  9. **
  10. */
  11.  
  12.  
  13. BOOL
  14. HandleEvents(struct EI_Window * window)
  15. {
  16.     BOOL            raus = FALSE;       /* TRUE, wenn die Funktion verlassen werden soll */
  17.     ULONG           GetBits, WaitBits;  /* MessagePort-Bits */
  18.     EI_EIntuiMsgPtr imess;              /* Message-Struktur-Pointer */
  19.  
  20.     WaitBits = (1L << window->UserPort->mp_SigBit) | SIGBREAKF_CTRL_C;
  21.  
  22.     while (!raus)
  23.     {
  24.     GetBits = Wait(WaitBits);
  25.  
  26.     if (GetBits & SIGBREAKF_CTRL_C) /* CTRL-C gedrückt */
  27.     {
  28.         raus = TRUE;
  29.     }
  30.  
  31.     while ((imess = (struct EI_EIntuiMsg *) GetMsg(window->UserPort)) != NULL)
  32.     {
  33.         switch (imess->Class)
  34.         {
  35.         case EI_iRAWKEY:
  36.         printf("iRawKey\n");
  37.         ReplyMsg((struct Message *) imess);
  38.         break;
  39.  
  40.         case EI_iCLOSEWINDOW:
  41.  
  42.         printf("iClose\n");
  43.  
  44.         ReplyMsg((struct Message *) imess);
  45.         raus = TRUE;
  46.         break;
  47.  
  48.         case EI_iMENUVERIFY:
  49.         printf("iMenuVerify\n");
  50.         ReplyMsg((struct Message *) imess);
  51.         break;
  52.  
  53.         case EI_iMENUPICK:
  54.  
  55.         printf("iMenu\n");
  56.         printf("Code = %lx\n", imess->Code);
  57.         /*
  58.  
  59.             switch(imess->Code)
  60.             {
  61.  
  62.             }
  63.  
  64.  
  65.          */
  66.         ReplyMsg((struct Message *) imess);
  67.         break;
  68.  
  69.  
  70.         case EI_iSIZEVERIFY:
  71.  
  72.         printf("VerifySizing ! \n");
  73.  
  74.         ReplyMsg((struct Message *) imess);
  75.         break;
  76.  
  77.         case EI_iNEWSIZE:
  78.  
  79.         printf("Sizing ! \n");
  80.  
  81.         ReplyMsg((struct Message *) imess);
  82.         break;
  83.  
  84.         case EI_iGADGETUP:
  85.         printf("Gadget \n");
  86.         ReplyMsg((struct Message *) imess);
  87.         break;
  88.  
  89.         default:
  90.           //  printf(" Unknown message %x & %x\n ", imess->Class, imess->Code);
  91.         ReplyMsg((struct Message *) imess);
  92.  
  93.         }
  94.     }
  95.     }
  96.     return raus;
  97. }
  98.